package _19_Factory;
/**
 * 工厂模式
 * 
 * 把创建对象的语句,封装到一个类中,形成工厂模式
 * 
 * 这样,所有用到这个对象的地方,都去工厂中获取
 * 
 * 把类和类之间的强依赖关系变弱,灵活度更高
 * 
 * @author lenovo
 * @Date 2020年7月13日
 * @Time 下午9:05:41
 */
public class Factory_01 {

	public static void main(String[] args) {
		// 队友
//		fight(new ZhuanTou());
//		fight(new ZhuanTou());
//		fight(new ZhuanTou());
//		fight(new ZhuanTou());
//		fight(new ZhuanTou());
//		fight(new RPG());
//		fight(new RPG());
//		fight(new RPG());
//		fight(new RPG());
//		fight(new RPG());

		fight(WeaponFactory.getWeapon());
		fight(WeaponFactory.getWeapon());
		fight(WeaponFactory.getWeapon());
		fight(WeaponFactory.getWeapon());
		fight(WeaponFactory.getWeapon());
		// 敌人
		fight(new AK47());
		fight(new AK47());
	}

	public static void fight(Weapon weapon) {
		weapon.fireInTheHole();
	}
}
